#pragma once

#include "scr_rect.h"

class SCRCamera
{
public:

	SCRCamera();
	int GetX() const;
	int GetY() const;
	void SetX(const int& X);
	void SetY(const int& Y);
	void SetXY(const int& X, const int& Y);
	bool IsInView(const int& X, const int& Y);
	bool IsInView(const SCRRect& Rect);
	void ApplyOffset(const int& OffsetX, const int& OffsetY);
	void SetBounds(const SCRRect& Bounds);

private:

	int m_X;
	int m_Y;
	SCRRect m_Bounds;
};

inline int SCRCamera::GetX() const
{
	return m_X;
}

inline int SCRCamera::GetY() const
{
	return m_Y;
}

inline void SCRCamera::SetX(const int& X)
{
	m_X = X;
}

inline void SCRCamera::SetY(const int& Y)
{
	m_Y = Y;
}

inline void SCRCamera::SetXY(const int& X, const int& Y)
{
	m_X = X;
	m_Y = Y;
}

inline void SCRCamera::SetBounds(const SCRRect& Bounds)
{
	m_Bounds = Bounds;
}
